
########################################
#~ définitions
########################################

CC	 = g++
SHELL   =   /bin/bash

# nom de l'executable
BIN=interpreteur

ODIR		= obj
SDIR		= src
IDIR		= include
BDIR		= bin
DDIR		= doc

include config.make
INCS        =   $(SUBDIRS:%=-I%/include)

# liste des fichiers sources (hors fichiers générés par flex et bison)

CSRCS       =   $(wildcard src/*.cpp)

COBJS       =   $(CSRCS:src/%.cpp=obj/%.o)

.PHONY: $(BDIR)/$(BIN)

#default: $(BDIR)/$(BIN)
default: $(SUBDIRS:%=%.dir) $(COBJS) $(BDIR)/$(BIN)

%.dir:
	@cd $(@:%.dir=%) && $(MAKE)

########################################
#~ regles pour l'executable
########################################

$(ODIR)/%.o: src/%.c
	$(CC) $(FLAGS) $(DEFS) $(INCS) -c $< -o $@

$(ODIR)/%.o: src/%.cpp
	$(CC) $(FLAGS) $(DEFS) $(INCS) -c $< -o $@

$(BDIR)/$(BIN):
	$(CC) -ggdb -o $@ $(wildcard obj/*.o) -lfl

########################################
#~ regles pour la doc
########################################

documentation:
	@cd $(DDIR) && doxygen

########################################
#~ regles pour le nettoyage
########################################

clean:
	@\rm -rf $(ODIR)/*.o $(BDIR)/$(BIN)
	@rm -rf $(DDIR)/html
	@rm -rf $(DDIR)/latex

test:
	./test.sh